using System;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.Caching;
using System.Collections;
using System.Data;

namespace Lx.Web.Common.ControlsUI
{
	public class MediaKey : System.Web.UI.UserControl
	{
		protected System.Web.UI.WebControls.Literal metaKey;
		protected System.Web.UI.WebControls.Literal metaDes;
		protected System.Web.UI.WebControls.Literal metaTitle;
		protected System.Web.UI.WebControls.Literal lngTitle;

		protected override void OnLoad(EventArgs e)
		{
			if(!Page.IsPostBack)
			{
				Lx.Web.Common.UI.TDTPageBase a = (Lx.Web.Common.UI.TDTPageBase)this.Page;
				if(metaKey!=null&&a.metaKey!=null)
				{
					a.metaKey.Text = a.metaKey.Text.Replace("{0}",metaKey.Text);
				}
				if(metaDes!=null&&a.metaDes!=null)
				{
					a.metaDes.Text = a.metaDes.Text.Replace("{0}",metaDes.Text);
				}
				if(metaTitle!=null&&a.metaTitle!=null)
				{
					a.metaTitle.Text = a.metaTitle.Text.Replace("{0}",metaTitle.Text);
				}
				if(lngTitle!=null&&a.lngTitle!=null)
				{
					DataTable dt = GetDTFromXml("Languages.xml");
					string lng = "English";
					if(Request["lng"]!=null)
					{
						lng = Request["lng"].ToString();
					}
					lng = GetText(lng,dt);
					a.lngTitle.Text = a.lngTitle.Text.Replace("{0}",lngTitle.Text.Replace("{0}",lng));
				}
			}
			base.OnLoad (e);
		}

		protected string GetText(string lng,DataTable dt)
		{
			string returnValue = lng;
			for(int i=0;i<dt.Rows.Count;i++)
			{
				if(returnValue==dt.Rows[i][0].ToString())
				{
					returnValue = dt.Rows[i][1].ToString();
					break;
				}
			}
			return returnValue;
		}
		
		protected DataTable GetDTFromXml(string fileName)
		{
			DataSet ds = new DataSet();
			try
			{
                ds.ReadXml(Server.MapPath(String.Format("/Control/{0}/{1}", Lx.Web.Common.UI.Globals.Language, fileName)));
				return ds.Tables[0];
			}
			catch
			{
				try
				{
                    ds.ReadXml(Server.MapPath(String.Format("/Control/en-us/{0}", fileName)));
					return ds.Tables[0];
				}
				catch
				{
                    ds.ReadXml(Server.MapPath(String.Format("/Control/zh-cn/{0}", fileName)));
					return ds.Tables[0];
				}
			}		
		}
	}
}

